#ifndef __FUZZYCONTROLLER_HPP__
#define __FUZZYCONTROLLER_HPP__

#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc_c.h"

#include "FFLLAPI.h"	// FFLL API

#define TARGET	0 // target is 1st variable
#define OBSTACLES	1 // obstacles is 2nd variable
#define POTENTIAL 2  // potential is 3rd var

struct decision 
{
	//int velocity; 
	//int direction;
	double velocity; 
	double direction;
};

class FuzzyController
{

private:
	//int model_dir;
	//int model_vel;
	//int child_dir;
	//int child_vel;
	int model_vel, model_dir;
	int child_vel, child_dir;
	
public:

	decision getDecision(double target_pos, double obstacles_pos, double potential);

	FuzzyController(int& ret_val);

	~FuzzyController(void);
};



#endif